using System;
using Sinacor.Infra.UI.Common;
using System.Collections.ObjectModel;

namespace Sinacor.UI.Bovespa.ManutencaoOrdens.Model
{
    /// <summary>
    /// Modelo de tipo de DetalheOrdem
    /// </summary>
    [Serializable]
    public class DetalheOrdem : BaseModel 
    {

		private string _ativo;
		private short? _carteira;
		private DateTime _dataOrdem;
		
        private EnumWrapper<Enum.TipoMercado> _mercado;
		private EnumWrapper<Enum.NaturezaOperacao> _naturezaOperacao;

		private int? _numeroOrdem;
		private int? _numeroOrdemSubSequencia;
		private int? _prazoVencimentoTermo;
		private Decimal? _preco;
		private int _quantidade;
		private Decimal? _quantidadeExecutada;

		public DetalheOrdem(){}

		public string Ativo{
			get{
				return _ativo;
			}
			set{
				_ativo = value;
                OnPropertyChanged("Ativo");
			}
		}

		public short? Carteira{
			get{
				return _carteira;
			}
			set{
				_carteira = value;
                OnPropertyChanged("Carteira");
			}
		}

		public DateTime DataOrdem{
			get{
				return _dataOrdem;
			}
			set{
				_dataOrdem = value;
                OnPropertyChanged("DataOrdem");
			}
		}

		public EnumWrapper<Enum.TipoMercado> Mercado{
			get{
				return _mercado;
			}
			set{
				_mercado = value;
                OnPropertyChanged("Mercado");
			}
		}

		public EnumWrapper<Enum.NaturezaOperacao> NaturezaOperacao{
			get{
				return _naturezaOperacao;
			}
			set{
				_naturezaOperacao = value;
                OnPropertyChanged("NaturezaOperacao");
			}
		}

        public int? NumeroOrdem
        {
            get
            {
                return _numeroOrdem;
            }
            set
            {
                _numeroOrdem = value;
                OnPropertyChanged("NumeroOrdem");
            }
        }

        public int? NumeroOrdemSubSequencia
        {
            get
            {
                return _numeroOrdemSubSequencia;
            }
            set
            {
                _numeroOrdemSubSequencia = value;
                OnPropertyChanged("NumeroOrdemSubSequencia");
            }
        }

		public int? PrazoVencimentoTermo{
			get{
				return _prazoVencimentoTermo;
			}
			set{
				_prazoVencimentoTermo = value;
                OnPropertyChanged("PrazoVencimentoTermo");
			}
		}

		public Decimal? Preco{
			get{
				return _preco;
			}
			set{
				_preco = value;
                OnPropertyChanged("Preco");
			}
		}

		public int Quantidade{
			get{
				return _quantidade;
			}
			set{
				_quantidade = value;
                OnPropertyChanged("Quantidade");
			}
		}

		public Decimal? QuantidadeExecutada{
			get{
				return _quantidadeExecutada;
			}
			set{
				_quantidadeExecutada = value;
                OnPropertyChanged("QuantidadeExecutada");
			}
		}

	}

}